package pimcontr;

/**
 * Klasse um die Kontaktliste zu speichern bzw. zu laden
 * 
 *
 */

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import java.util.Map;
import java.util.Observer;
import java.io.FileNotFoundException;
import java.io.IOException;

import pimgui.PimGui;
import pimmodel.*;

public class KontaktManager extends PimManager{
	
	private KontaktList kontakte;
	public IKontakt aktKontakt;
	public List<ITelefonnr> aktNummer;
	public Map<String, String> map;
	public Map<String, String> telefonmap;
	
	public KontaktManager (){
		kontakte=new KontaktList();
		aktKontakt=new Kontakt();
		aktNummer=new ArrayList<ITelefonnr>();
		
	
	}
	
	public void speichern() throws FileNotFoundException, IOException{
		kontakte.speichern();
	}
	
	public void laden() throws ClassNotFoundException, IOException{
		kontakte.laden();
		maperzeugen();
	}
	
	@Override
	public void drucken() {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void hinzufuegen(IPimDaten adddaten) {
		kontakte.kontaktHinzufuegen((IKontakt)adddaten);
		// TODO Auto-generated method stub
		
	}

	@Override
	public void loeschen(IPimDaten loeschdaten) {
		kontakte.kontaktLoeschen((IKontakt)loeschdaten);
		// TODO Auto-generated method stub
		
	}

	@Override
	public void aendern(IPimDaten beardaten, IPimDaten orgdaten) {
		kontakte.kontaktErsetzen((IKontakt)beardaten,(IKontakt) orgdaten);
		// TODO Auto-generated method stub
		
	}
	
	
	public IKontakt suchen(String suchname){
		int index=kontakte.kontaktNameSuchen(suchname);
		return new Kontakt( kontakte.kontaktLiefern(index) );
	}
	
	public IKontakt suchenTer(IKontakt suchKontakt){
		int index=kontakte.kontaktSuchen(suchKontakt);
		return new Kontakt ( kontakte.kontaktLiefern(index) );
	}

	public KontaktList getKontakte() {
		return kontakte;
	}

	public void setKontakte(KontaktList kontakte) {
		this.kontakte = kontakte;
	}

	public IKontakt getAktKontakt() {
		return aktKontakt;
	}

	public void setAktKontakt(IKontakt aktKontakt) {
		this.aktKontakt = aktKontakt;
	}
	
	

	public List<ITelefonnr> getAktNummer() {
		return aktNummer;
	}

	public void setAktNummer(List<ITelefonnr> aktNummer) {
		this.aktNummer = aktNummer;
	}

	public Map<String, String> getMap() {
		return map;
	}

	public void setMap(Map<String, String> map) {
		this.map = map;
	}

	public Map<String, String> getTelefonmap() {
		return telefonmap;
	}

	public void setTelefonmap(Map<String, String> telefonmap) {
		this.telefonmap = telefonmap;
	}

	public String[] ausgabeNachName(List<ITelefonnr> arrayList) {
		String[]nummernname=new String[arrayList.size()];
		
		
		for (int i=0;i<arrayList.size();i++){
			nummernname[i]=arrayList.get(i).toString();
		
			}
			
		
		// TODO Auto-generated method stub
		return nummernname;
	}

	public void maperzeugen() {
		map=new HashMap<String, String>();
		for (int i=0;i<kontakte.size();i++){
			map.put(kontakte.getKontaktliste().get(i).getName()+" , "+kontakte.getKontaktliste().get(i).getVorname(), i+"");
		}
		
	}

	public void nummermapErzeugen() {
		telefonmap=new HashMap<String, String>();
		for (int i=0;i<aktKontakt.getTelefonnummern().size();i++){
			telefonmap.put(aktKontakt.getTelefonnummern().get(i).toString(), i+"");
		}
		
		// TODO Auto-generated method stub
		
	}

	public String[] ausgabeName() {
		Map<String, String> map = new HashMap<String, String>();
		//Object[] aufgabenarray= terminliste.getTerminliste().toArray();
		String[]kontaktname=new String[kontakte.size()+1];
		kontaktname[0]=PimGui.getResourceBundle().getString("pimgui25")/*"Alle Daten anzeigen"*/;
		int j=1;
		if (kontakte.size()!=0){
			for (int i=0;i<kontakte.size();i++){
				kontaktname[j]=kontakte.getKontaktliste().get(i).getName()+" , "+kontakte.getKontaktliste().get(i).getVorname();
				j++;
			
			}
		}
		return kontaktname;
		// TODO Auto-generated method stub
		
	}
	
	public String[] ausgabenachName(ArrayList<IKontakt> ergebnis) {
		Map<String, String> map = new HashMap<String, String>();
		//Object[] aufgabenarray= terminliste.getTerminliste().toArray();
		String[]kontaktname=new String[ergebnis.size()+1];
		//kontaktname[0]="Alle Daten anzeigen";
		int j=0;
		if (ergebnis.size()!=0){
			for (int i=0;i<ergebnis.size();i++){
				kontaktname[j]=ergebnis.get(i).getName()+" , "+ergebnis.get(i).getVorname();
				j++;
			
			}
		}
		return kontaktname;
		// TODO Auto-generated method stub
		
	}




	


}
